package com.dayatang.exam.domain;

public interface ExamService {
	
	/**
	 * 将考生加入考试
	 * @param exam
	 * @param student
	 */
	void registerExam(Exam exam, User student);
	
	/**
	 * 从考试中取消已加入的考生
	 * @param exam
	 * @param student
	 */
	void unregisterExam(Exam exam, User student);
	
	/**
	 * 根据考试设置生成试卷
	 * @param exam
	 * @return
	 */
	ExamPaper generateExamPaper(Exam exam);
	
	/**
	 * 取得指定考生在指定考试中的答卷。如果答卷尚未存在，则创建之。
	 * 根据考卷生成策略的不同，在一场考试中，可能所有的考生共享同一份考题，
	 * 或者为每个考生生成一份独特的考题。
	 * @param exam
	 * @param student
	 * @return
	 */
	AnswerPaper getAnswerPaper(Exam exam, User student);
}
